]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
notificationDaemon: Guard against invalid D-Bus object paths
authorKrzesimir Nowak <krzesimir@kinvolk.io>
Fri, 18 Nov 2016 14:52:46 +0000 (15:52 +0100)
committerMario Sanchez Prada <mario@endlessm.com>
Mon, 25 Sep 2017 14:57:20 +0000 (15:57 +0100)
When making any D-Bus call through the GDBus' proxy wrapper with an
invalid D-Bus object path, gnome-shell hangs.

Supposedly FdoApplicationProxy constructor should validate the passed
D-Bus object path and throw an error if the path is invalid. Since it
does not do that, we work it around by making sure that the deduced
D-Bus object path is valid or throw an exception if the path is not.

https://bugzilla.gnome.org/show_bug.cgi?id=787902

js/ui/notificationDaemon.js

index ed8870fe1950af9fd47a494f5cd37ffab42500a7..84bfec466cb9714edf477a9999f2679d0cfef6ac 100644 (file)
@@ -687,6 +687,8 @@ var GtkNotificationDaemonAppSource = new Lang.Class({
     _init: function(appId) {
         this._appId = appId;
         this._objectPath = objectPathFromAppId(appId);
+        if (!GLib.Variant.is_object_path(this._objectPath))
+            throw new InvalidAppError();
 
         this._app = Shell.AppSystem.get_default().lookup_app(appId + '.desktop');
         if (!this._app)